from django import template

register = template.Library()
# # # 自定义过滤器
# # @register.filter
# # def a_upper(val):
# # 	return val.upper()

# 自定义标签
from django.utils.html import format_html
@register.simple_tag

def showPage(count,request):
	'''
	count:总页数
	p:当前页
	返回：返回5个标签
	'''
	# count 总页码数 20
	# request 当前页面的请求对象
	
	# begin 开始页
	# end 结束页
	
	# 获取所有参数，在每一次页码跳转时，携带已有的参数。
	
	# kv = ''
	# for x in request.GET:
	# 	if x != 'p':
	# 		kv += '&'+x+'='+request.GET[x]


	count = int(count)
	# # 在请求中获取当前页码数，如果没有 默认为1
	# # 
	p = int(request.GET.get('p',1))


	# 每屏10个分页标签，当前页p保持在第5个。
	# 开始标签页为 p-4
	# 结束标签页为 p+5
	begin = p-4
	end = p+5

	# 按上面逻辑，防止bigin小于0，做出调整
	if begin<=1:
		begin = 1
		end = begin+9

	# 当end到达最后时
	if end>=count:
		end=count
		beign = end-9
		# 当条数小于10时
		if begin<=1:
			begin = 1
		else:
			begin = end-9


	kv=''
	for x in request.GET:
		if x != 'p':
			kv += '&'+x+'='+request.GET[x]

	page = ''
	# 首页
	page += '<li><a href="?p=1'+kv+'">首页</a></li>'
	# 上一页
	if p<=1:
		page += '<li><a href="?p=1'+kv+'">上一页</a></li>'
	else:
		page += '<li><a href="?p='+str(p-1)+kv+'">上一页</a></li>'

	# 页码
	for x in range(begin,end+1):
		if x==p:
			# 当前页
			page += '<li class="am-active"><a href="?p='+str(x)+kv+'">'+str(x)+'</a></li>'
		else:
			page += '<li ><a href="?p='+str(x)+kv+'">'+str(x)+'</a></li>'
			

	# 下一页
	if p+1>count:
		page += '<li><a href="?p='+str(count)+kv+'">下一页</a></li>'
	else:
		page += '<li><a href="?p='+str(p+1)+kv+'">下一页</a></li>'

	# 尾页
	page += '<li><a href="?p='+ str(count) +kv+'">尾页</a></li>'
	
	return format_html(page)



# 富文本编辑器的内容转换成html
@register.simple_tag
def format2html(arg):
	return format_html(arg)



from .. models import Types
@register.simple_tag
def duobiao(id):
	obj = Types.objects.get(id=id)
	return obj.name



@register.simple_tag
def cheng(num,price):
	num = int(num)
	price = float(price)
	total = num * price
	total = '{:.2f}'.format(total)
	return total



